/**
 * 
 */
package com.huawei.classroom.student.h54;

/**
 * @author Administrator
 *
 */
public class PasswordChecker {
	/**
	 * 判断一个口令是否是一个复杂度合法的口令，复杂度合法的口令有如下要求：
	 * 1  长度>=8
	 * 2 最少包含一个数字
	 * 3 最少包含一个小写英文字母
	 * 4 虽少包含一个大写英文字母
	 * 5 最少包含一个特殊字符 特殊字符定义为   ~!@#$%^&*()_+
	 * 
	 *   
	 */
	public boolean isValidPassword(String password){
		if(password.length() < 8)
		return false;
		else {
			boolean a1,a2,a3,a4;
			a1 = a2 = a3 = a4 = false;
			for(int i=0; i<password.length(); i++) {
				if(password.charAt(i) >= '0' && password.charAt(i) <= '9') {
					a1 = true;
				}else if(password.charAt(i) >= 'a' && password.charAt(i) <= 'z') {
					a2 = true;
				}else if(password.charAt(i) >= 'A' && password.charAt(i) <= 'Z') {
					a3 = true;
				}else if(SpacialChar(password.charAt(i))) {
					a4 = true;
				}
				
				if(a1 && a2 && a3 && a4) return true;
			}
			return false;
		}	
	}
	
	public boolean SpacialChar(char s) {
		if(s == '~' || s == '!' || s == '@' || s == '#' || 
			s == '$' || s == '%' || s == '^' || s == '&' || 
			s == '*' || s == '(' || s == ')' || s == '_' || s == '+') {
			return true;
		}
		return false;
	}
}
